package chapter010;


import org.apache.logging.log4j.core.util.ContextDataProvider;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.spi.SLF4JServiceProvider;

import java.util.Iterator;
import java.util.ServiceLoader;

/**
 * slf4j
 *
 * SLF4J，即简单日志门面（Simple Logging Facade for Java），不是具体的日志解决方案，它只服务于各种各样的日志系统。
 * 按照官方的说法，SLF4J是一个用于日志系统的简单Facade，允许最终用户在部署其应用时使用其所希望的日志系统
 *
 * 参考链接 :
 * dengjili [logback基本使用] https://blog.csdn.net/dengjili/article/details/98369441
 * 卓玛 [ServiceLoader使用看这一篇就够了]https://www.jianshu.com/p/7601ba434ff4
 *
 * 廖雪峰 [使用SLF4J和Logback] https://www.liaoxuefeng.com/wiki/1252599548343744/1264739155914176
 *
 * _ZXP [logback的xml配置文件模板（超详细）] https://www.cnblogs.com/z-x-p/p/11686963.html
 *
 * @author Jack魏
 */
public class Point04 {
    private final static Logger logger = LoggerFactory.getLogger(Point04.class);

    public static void main(String[] args) {
        logger.debug("debug测试");
        logger.info("info测试");
        logger.error("error测试");
    }

    @Test
    public void testServiceLoader(){
        ServiceLoader<SLF4JServiceProvider> serviceLoader = ServiceLoader.load(SLF4JServiceProvider.class);
        Iterator var2 = serviceLoader.iterator();

        while(var2.hasNext()) {
            SLF4JServiceProvider provider = (SLF4JServiceProvider)var2.next();
            System.out.println(provider);
        }
        ServiceLoader<ContextDataProvider> load1 = ServiceLoader.load(ContextDataProvider.class);

        Iterator var3 = load1.iterator();

        while(var3.hasNext()) {
            ContextDataProvider provider = (ContextDataProvider)var3.next();
            System.out.println(provider);
        }
    }
}
